package org.example.io;

import java.io.*;
import java.net.Socket;
import java.nio.Buffer;

/**
 * socket 网络IO 客户端代码
 * {@link SocketIOProperties} 这里是配套服务端代码。
 */
public class SocketClient {
    public static void main(String[] args) {
        try {
            Socket client = new Socket("192.168.127.128", 9090);

            client.setSendBufferSize(20);
            /*
             * NoDelay 无延迟，意思是不优化，如果 {@code false} 那么数据会尽可能等到数据量大才发送。
             * 当发送的数据量小时建议设置为true
             */
            client.setTcpNoDelay(true);
            OutputStream out = client.getOutputStream();

            InputStream in = System.in;
            BufferedReader reader = new BufferedReader(new InputStreamReader(in));

            while(true){
                String line = reader.readLine();
                if (line!=null){
                    byte[] data = line.getBytes();
                    for (byte d : data) {
                        out.write(d);
                    }
                }
            }
        }catch (IOException e){
            e.printStackTrace();
        }
    }
}
